package com.example.backend_422.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.example.backend_422.common.Result;
import com.example.backend_422.entity.User;
import com.example.backend_422.mapper.UserMapper;
import com.example.backend_422.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author xwyzsn
 * @since 2023-04-22
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {


    @Autowired
    private UserMapper userMapper; // 自动装配, 通过 @Autowired 自动装配 RentMapper

    public Result getAll() {
        return Result.succ(userMapper.selectList(null));
    }// 获取所有用户信息

    /**
     * 登录
     * @param username
     * @param password
     * @return
     *
     */
    public Result login(String username, String password) {
        // 根据用户名查询用户信息
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.eq("username",username);
        // 根据查询结果判断用户是否存在
        User user = userMapper.selectOne(wrapper);
        // 用户不存在
        if(user == null){
            return Result.fail("用户不存在");
        }
        // 用户存在, 判断密码是否正确
        if(!user.getPassword().equals(password.trim())){
            return Result.fail("密码错误");
        }
        // 密码正确, 返回用户信息
        return Result.succ(user);
    }

    /**
     * 注册
     * @param username
     * @param password
     * @param tel
     * @param role
     * @return
     */
    public Result addUser(String username, String password, String tel, String role) {
//        UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
//        updateWrapper.set("username",)
        // 根据用户名查询用户信息
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        user.setTel(tel);
        user.setRole(role);
        try {
            // 添加用户信息
            userMapper.insert(user);
            return Result.succ("success ");
        } catch (Exception e ){
            // 添加失败
            return Result.fail(e.getMessage());
        }
    }
}
